package com.sikaryofficial.backend.domain.dto.req.workOrder;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sikaryofficial.backend.annotation.SensitiveDeserializer;
import com.sikaryofficial.system.api.model.att.AttachmentResp;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.List;

/**
 * 用户售后工单对象 user_work_order_t
 *
 * @author qinjinyuan
 * @date 2024-01-17
 */
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class UserWorkOrderSaveReq {

    @ApiModelProperty(value = "工单主键ID")
    private Long workOrderId;

    /**
     * 名
     */
    @ApiModelProperty(value = "名")
    @Length(max = 30, message = "request firstName max value is 30")
    private String firstName;

    /**
     * 姓
     */
    @ApiModelProperty(value = "姓")
    @Length(max = 30, message = "request lastName max value is 30")
    private String lastName;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    @Length(max = 50, message = "request email max value is 50")
    private String email;

    /**
     * 电话
     */
    @ApiModelProperty(value = "电话")
    @Length(max = 20, message = "request phoneNumber max value is 20")
    private String phoneNumber;

    /**
     * 品牌
     */
    @ApiModelProperty(value = "品牌")
    private String brandNo;

    /**
     * 产品名称
     */
    @ApiModelProperty(value = "产品名称")
    @Length(max = 100, message = "request productName max value is 100")
    private String productName;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "经度")
    private BigDecimal latitude;

    /**
     * 地址ID
     */
    @ApiModelProperty(value = "地址ID")
    private Long addressId;

    /**
     * 地址详情
     */
    @ApiModelProperty(value = "地址详情")
    @Length(max = 256, message = "request addressDetail max value is 256")
    private String addressDetail;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Length(max = 1000, message = "request remark max value is 1000")
    @JsonDeserialize(using = SensitiveDeserializer.class)
    private String remark;

    @ApiModelProperty(value = "附件列表")
    private List<AttachmentResp> attachmentList;

    @ApiModelProperty(value = "城市")
    private String city;

    @ApiModelProperty(value = "国家")
    private String country;
    /**
     * 区域
     */
    @ApiModelProperty(value = "区域")
    private String area;

    /**
     * 区县
     */
    @ApiModelProperty(value = "区县")
    private String county;

}
